package cn.iocoder.yudao.module.scrm.controller.admin.clue.vo;

import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.io.Serializable;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.*;
import static cn.iocoder.yudao.module.scrm.enums.DictTypeConstants.SCRM_CLUE_CLIENT;

@Schema(description = "管理后台 - 线索 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ClueRespVO  implements Serializable {

    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20063")
    @ExcelProperty("id")
    private Integer id;

    @Schema(description = "姓名", example = "芋艿")
    @ExcelProperty("姓名")
    private String name;

    @Schema(description = "企业")
    @ExcelProperty("企业")
    private String enterprise;

    @Schema(description = "电话")
    @ExcelProperty("电话")
    private String phone;

    @Schema(description = "线索来源推广")
    @ExcelProperty("线索来源推广")
    private String clueSource;

    @Schema(description = "获客时间")
    @ExcelProperty("获客时间")
    @DateTimeFormat(pattern =FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
    private LocalDateTime acquisitionTime;

    @Schema(description = "客户来源  scrm_clue_client")
    @ExcelProperty("客户来源  scrm_clue_client")
    @DictFormat(SCRM_CLUE_CLIENT)
    private String clientSource;

    @Schema(description = "素材来源")
    @ExcelProperty("素材来源")
    private String materialSource;

    @Schema(description = "信息来源  scrm_clue_info")
    @ExcelProperty("信息来源  scrm_clue_info")
    private String infoSource;

    @Schema(description = "客户质量  scrm_clue_idea")
    @ExcelProperty("客户质量  scrm_clue_idea")
    private String clientQuality;

    @Schema(description = "备注", example = "你说的对")
    @ExcelProperty("备注")
    private String remark;

    @Schema(description = "用户信息_id", example = "8327")
    @ExcelProperty("用户信息_id")
    private String userId;

    @Schema(description = "用户部门_id", example = "25340")
    @ExcelProperty("用户部门_id")
    private String deptId;

    @Schema(description = "线索系统状态 scrm_clue_system_state")
    @ExcelProperty("线索系统状态 scrm_clue_system_state")
    private String clueSystemState;

    @Schema(description = "线索状态- scrm_clue_state")
    @ExcelProperty("线索状态- scrm_clue_state")
    private String clueState;

    @Schema(description = "系统编号")
    @ExcelProperty("系统编号")
    private String systemNumber;

    @Schema(description = "线索当前所属部门")
    @ExcelProperty("线索当前所属部门")
    private String clueDepartment;

    @Schema(description = "创建人员")
    @ExcelProperty("创建人员")
    private String createBy;

    @Schema(description = "前归属人员")
    @ExcelProperty("前归属人员")
    private String agoAffiliationBy;

    @Schema(description = "前归属部门")
    @ExcelProperty("前归属部门")
    private String agoAffiliationDepartment;

    @Schema(description = "最后跟进时间")
    @ExcelProperty("最后跟进时间")
    @DateTimeFormat(pattern =FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
    private LocalDateTime followUpTime;

    @Schema(description = "线索当前的归属人-")
    @ExcelProperty("线索当前的归属人-")
    private String cluePerson;

    @Schema(description = "附件上传地址", example = "https://www.iocoder.cn")
    @ExcelProperty("附件上传地址")
    private String fileUrl;

    @Schema(description = "默认0新增的数据 1导入的数据")
    @ExcelProperty("默认0新增的数据 1导入的数据")
    private String importCheck;

    @Schema(description = "备用字段")
    @ExcelProperty("备用字段")
    private String testV;

    @Schema(description = "是否置顶 0不置顶  1置顶")
    @ExcelProperty("是否置顶 0不置顶  1置顶")
    private String topIf;

    @Schema(description = "创建时间-默认")
    @ExcelProperty("创建时间-默认")
    private LocalDateTime createTime;

}